package com.badger.generator.convert;

import com.badger.generator.enums.DataBaseType;

/**
 * oracle的字段类型转换
 * @author liqi
 *
 */
public class OracleTypeConvert implements TypeConvert {

    @Override
    public DataBaseType processTypeConvert(String fieldType) {
        String t = fieldType.toUpperCase();
        if (t.contains("CHAR")) {
            return DataBaseType.STRING;
        } else if (t.contains("DATE") || t.contains("TIMESTAMP")) {
            return DataBaseType.DATE;
        } else if (t.contains("NUMBER")) {
            if (t.matches("NUMBER\\(+\\d\\)")) {
                return DataBaseType.INTEGER;
            } else if (t.matches("NUMBER\\(+\\d{2}+\\)")) {
                return DataBaseType.LONG;
            }
            return DataBaseType.DOUBLE;
        } else if (t.contains("FLOAT")) {
            return DataBaseType.FLOAT;
        } else if (t.contains("clob")) {
            return DataBaseType.CLOB;
        } else if (t.contains("BLOB")) {
            return DataBaseType.OBJECT;
        } else if (t.contains("binary")) {
            return DataBaseType.BYTE_ARRAY;
        } else if (t.contains("RAW")) {
            return DataBaseType.BYTE_ARRAY;
        }
        return DataBaseType.STRING;
    }

}
